//引入API
import { reqCategoryList, reqGetBannerList, reqFloorList } from '@/api/index'
//home模块的小仓库
//vuex的四大核心概念必须要有
const state = {
    //state中数据的默认初始值是【根据接口返回值初始化的】，服务器返回对象则state默认值为空对象，服务器返回数组则state默认值返回空数组。
    categoryList: [],
    getBannerList: [],
    floorList: []
};
const mutations = {
    CATEGORYLIST(state, categoryList) {
        state.categoryList = categoryList;
    },
    GETBANNERLIST(state, getBannerList) {
        state.getBannerList = getBannerList
    },
    GETFLOORLIST(state, floorList) { //形参
        state.floorList = floorList
    }
};
const actions = {
    //三级联动，通过API里面的接口函数调用，向服务器发请求，获取服务器的数据。
    async categoryList({ commit }) {
        let result = await reqCategoryList();
        console.log(result); //返回的是axios的返回结果：即promise
        // 为了拿到promise的成功的结果， 所以需要写async和await这对cp
        if (result.code == "200") { //表示请求成功
            commit("CATEGORYLIST", result.data);
        }
    },
    //获取首页轮播图的数据
    async getBannerList({ commit }) {
        const result2 = await reqGetBannerList();
        if (result2.code == 200) {
            commit('GETBANNERLIST', result2.data)
        }
    },
    //获取floor数据(将来需要提交，所以需要写{commit})
    async getFloorList({ commit }) {
        const result3 = await reqFloorList();
        if (result3.code == 200) {
            //提交mutation
            commit('GETFLOORLIST', result3.data)
        }
    }
};
const getters = {}

export default {
    state,
    mutations,
    actions,
    getters
}